www.gusucode.com > XerCMS 携云PHP企业建站程序 v2015PHP源码程序 > XerCMS 携云PHP企业建站程序 v2015/XerCMS_v20150724/XerCMS_v20150724/XerCMS/Library/XerCMS_bak.php
<?php /** * @name XERCMS * @author Arno <XerCMS@163.com> [QQ:1328013] * @version 1.0.0 * @link http://www.XerCMS.com */ !defined('XERCMS') && exit('Access Denied'); class BAK { static $number = 100; static function tables() { DB::$connect || DB::connect(); $name = DB::$db[0]['name']; $t = DB::fetch_all('SHOW TABLES'); foreach($t as $v) { $count = DB::result_first('SELECT COUNT(*) FROM '.$v['Tables_in_'.$name]); $ret[] = array('name'=>$v['Tables_in_'.$name],'count'=>$count); } return $ret; } static function log($dir) { if(file_exists(INC.'Data/backup/'.$dir.'/XerCMS.php')) { return include(INC.'Data/backup/'.$dir.'/XerCMS.php'); } return array(); } static function write($name,$data,$dir) { DIR::mkdirs('XerCMS/Data/backup/'.$dir);//f('arrtostr'); //echo 'XerCMS/Data/backup/'.$dir;exit; $log = array(); if(file_exists(INC.'Data/backup/'.$dir.'/XerCMS.php')) { $log = include(INC.'Data/backup/'.$dir.'/XerCMS.php'); } $log[$name] = isset($log[$name]) ? ((int)$log[$name] + 1) : 1; if($log[$name] == 1) { dfile('XerCMS/Data/backup/'.$dir.'/'.$name.'.php','<?php !defined(\'XERCMS\') && exit(\'Access Denied\');return \'DROP TABLE IF EXISTS `'.$name.'`\';?>'); $create = DB::result('show create table `'.$name.'`'); dfile('XerCMS/Data/backup/'.$dir.'/'.$name.'_0.php','<?php !defined(\'XERCMS\') && exit(\'Access Denied\');return \''.strtr($create['Create Table'],array('\''=>'\\\'')).'\';?>'); } dfile('XerCMS/Data/backup/'.$dir.'/XerCMS.php','<?php !defined(\'XERCMS\') && exit(\'Access Denied\');return '.AtoS($log).';?>'); dfile('XerCMS/Data/backup/'.$dir.'/'.$name.'_'.$log[$name].'.php','<?php !defined(\'XERCMS\') && exit(\'Access Denied\');return \''.$data.'\';?>'); } static function table($name,$start,$dir) { $count = 0; $data = DB::fetch_all('SELECT * FROM '.$name.' LIMIT '.$start.','.self::$number); if(isset($data[0])) { $sqlstr = 'INSERT INTO '.$name.' '; foreach($data[0] as $k=>$v) { $field[] = '`'.$k.'`'; } $sqlstr .= '('.implode(',',$field).') VALUES ';$field = array(); foreach($data as $row) { foreach($row as $k=>$v) { $row[$k] = '\\\''.addslashes(addslashes($v)).'\\\'';//strtr($v,array('\\'=>'\\\\','\''=>'\\\'')).'\\\''; } $field[] = '('.implode(',',$row).')'; $count++; } $sqlstr .= implode(",\r\n",$field).';'; self::write($name,$sqlstr,$dir); return $count; } return '0'; } static function restore($name,$id,$dir) { if($id == 0) { $sql = include(INC.'Data/backup/'.$dir.'/'.$name.'.php'); DB::query($sql);//file_put_contents(XERCMS.'html/'.$name.'.txt',$sql.DB::$error."\r\n",FILE_APPEND); } if(file_exists(INC.'Data/backup/'.$dir.'/'.$name.'_'.$id.'.php')) { $sql = include(INC.'Data/backup/'.$dir.'/'.$name.'_'.$id.'.php'); // file_put_contents(XERCMS.'html/'.$name.'_'.$id.'.txt',$sql."\r\n",FILE_APPEND); return DB::query($sql); } } } ?>